//
//  My4DImage.h
//  V3d_Cocoa
//
//  Created by Y my on 11-3-13.
//  Copyright 2011 NJUST. All rights reserved.
//


#import "Image4DSimple.h"
#import "Volimg_proc.h"
#import "Colormap.h"

@interface My4DImage : Image4DSimple {
	float **** data4d_float32;
	USHORTINT16 **** data4d_uint16;
	unsigned char **** data4d_uint8;
	void **** data4d_virtual;
	double * p_vmax, * p_vmin;
	ColorMap *colorMap;
}

@property double * p_vmax, * p_vmin;
@property (retain) ColorMap *colorMap;

-(id) initialize;
-(BOOL) isEmpty;

-(void ****) getData:(ImagePixelType *) type;
-(void ****) getData;

-(void) loadImage:(const char*) filename;
-(BOOL) updateMinMaxValues;

-(void) createColorMap:(int)len;
-(void) createColorMap:(int) len type:(ImageDisplayColorType) c;

-(void) setUpData4D;
-(int) new3dpointer_v3d_char:(unsigned char ****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andData1d:(unsigned char *) p1d;
-(int) new3dpointer_v3d_int16:(USHORTINT16 ****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andData1d:(unsigned char *) p1d;
-(int) new3dpointer_v3d_float:(float ****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andData1d:(unsigned char *) p1d;
-(int) new4dpointer_v3d_char:(unsigned char *****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andC:(V3DLONG) s3 andData1d:(unsigned char *) p1d;
-(int) new4dpointer_v3d_int16:(USHORTINT16 *****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andC:(V3DLONG) s3 andData1d:(unsigned char *) p1d;
-(int) new4dpointer_v3d_float:(float *****) p withX:(V3DLONG) s0 andY:(V3DLONG) s1 andZ:(V3DLONG) s2 andC:(V3DLONG) s3 andData1d:(unsigned char *) p1d;
@end
